const mongoose = require('mongoose')
const { Types } = require('mongoose')
const Schema = mongoose.Schema

const moment = require('moment')

const userSchema = new Schema({
  // _id: Types.ObjectId,
  nickname: String,
  avatarUrl: {
    type: String,
    default: ""
  },
  email: {
    type: String,
    default: ""
  },
  signature: {
    type: String,
    default: ""
  },
  sex: {
    type: Number,
    default: 0
  },
  fans: {
    type: Number,
    default: 0
  },
  createDate: {
    type: Date,
    default: Date.now()
  },
  lastLoginDate: {
    type: Date,
    default: Date.now()
  },
  follws: {
    type: [Object],
    default: []
  },
  favorites: {
    type: [Object],
    default: []
  },
  history: {
    type: [Object],
    default: []
  }
  //...
})

// 必须设置toJson和toObject才能使用path自定义get
userSchema.set('toJSON', { getters: true, virtuals: true })
userSchema.set('toObject', { getters: true, virtuals: true })
// 国际化-中国
moment.locale('zh-cn')
// 设置createDate属性的get函数
userSchema.path('createDate').get(function (v) {
  // utcOffset(8)中国时区
  return moment(v).utcOffset(8).format('lll') // xxxx年xx月xx日 hh:ss
})
userSchema.path('lastLoginDate').get(function (v) {
  // utcOffset(8)中国时区
  return moment(v).utcOffset(8).format('lll') // xxxx年xx月xx日 hh:ss
})

const userModel = mongoose.model('user', userSchema)

module.exports = {
  userModel
}